#encoding: UTF-8

class CartController < ApplicationController
  before_filter :initialize_cart

  def add
    params[:id].gsub!(/producto_/, "")
    @producto = Producto.find params[:id]
    @page_title = 'Añadir producto'
    if request.xhr?
        @item = @cart.add(params[:id])
        flash.now[:cart_notice] = "Añadido <em>#{@item.producto.nombre}</em> en el carrito".html_safe
        render action: "add_with_ajax"
    elsif request.post?
      @item = @cart.add params[:id]
      flash[:cart_notice] = "Añadido <em>#{@item.producto.nombre} en el carrito</em>.".html_safe
      redirect_to :controller => 'catalog' 
    else
      #render :controller => 'cart', :action => 'add', :template => 'cart/add'
      render
    end
  end

  def remove
    @producto = Producto.find params[:id]
    @page_title = 'Eliminar producto'
    if request.xhr?
       @item = @cart.remove(params[:id])
      flash.now[:cart_notice] = "Retirado 1 de <em>#{@item.producto.nombre}</em> del carrito".html_safe
      render :action => "remove_with_ajax"
    elsif request.post?
      @item = @cart.remove params[:id]
      flash[:cart_notice] = "Retirado 1 de <em>#{@item.producto.nombre}</em> del carrito".html_safe
      redirect_to :controller => 'catalog' 
    else
      render
    end
  end

  def clear
    @page_title = 'Vaciar carrito'
    if request.xhr?
      @cart.cart_items.destroy_all
      flash.now[:cart_notice] = "Su carrito está vacío"
      render :action => "clear_with_ajax"
    elsif request.post?
      @cart.cart_items.destroy_all
      flash[:cart_notice] = "Su carrito está vacío"
      redirect_to :controller => 'catalog'
    else
      render
    end
  end
end
